package com.lxw.api.courese;

import com.lxw.framework.domain.course.*;
import com.lxw.framework.domain.course.ext.TeachplanNode;
import com.lxw.framework.domain.course.response.CoursePublishResult;
import com.lxw.framework.domain.course.response.CourseView;
import com.lxw.framework.model.response.QueryResponseResult;
import com.lxw.framework.model.response.ResponseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

@Api(tags = {"课程操作相关"})
public interface CourseControllerApi {
    @ApiOperation(value = "查询课程计划")
    public TeachplanNode findTeachplanList(String courseId);

    @ApiOperation(value = "根据ID查询课程计划")
    public Teachplan findTeachplanById(String id);

    @ApiOperation(value = "添加课程计划")
    public ResponseResult addTeachplan(Teachplan teachplan);

    @ApiOperation(value = "删除课程计划")
    public ResponseResult delTeachplan(String id);

    @ApiOperation(value = "添加课程")
    public ResponseResult addCourse(CourseBase courseBase);

    @ApiOperation(value = "分页查询课程")
    public QueryResponseResult findList(Integer page, Integer pageSize);

    @ApiOperation(value = "根据ID查询课程基本信息")
    public CourseBase findCoursebaseByID(String courseId);

    @ApiOperation(value = "编辑课程基本信息")
    ResponseResult editCourse(String courseId,CourseBase courseBase);

    @ApiOperation(value = "根据ID查询课程营销信息")
    public CourseMarket findCourseMarketById(String courseId);

    @ApiOperation(value = "更新课程营销信息")
    ResponseResult editCourseMarket(String courseId,CourseMarket courseMarket);


    @ApiOperation("添加课程图片")
    public ResponseResult addCoursePic(String courseId,String pic);

    @ApiOperation(value = "根据ID查询课程图片")
    public CoursePic findCoursePicById(String courseId);

    @ApiOperation(value = "根据ID删除课程图片")
    public ResponseResult delCoursePicById(String courseId);

    @ApiOperation(value = "根据ID获取课程模型数据")
    CourseView getModelData(String courseId);

    @ApiOperation("预览课程")
    public CoursePublishResult preview(String id);


    @ApiOperation("课程发布")
    public CoursePublishResult postPage(String id);


    @ApiOperation("保存课程计划关联信息")
    public ResponseResult savemedia(TeachplanMedia teachplanMedia);
}
